

// 社区管理系统的接口文件

var express = require("express")
var router = express.Router()

var { MovieModel, AdminUsersModel } = require("../untils/model")
var axios = require("axios")
var { createToken, checkToken } = require("../untils/token")
// console.log(AdminUsers);
// 禁止 使用 res.render 
// router.get("/test", (req, res) => {
//     // res.send("this is vue project test interface")
//     res.json({
//         msg: 'this is vue project test interface'
//     })
// })

// // 留言板 增删改查 
// router.get('/liuyanlist',(req,res)=>{
//     LiuYanModel.find({})
//     .then(result=>{
//         res.json({
//             result,
//             msg:'获取数据成功',
//             code:200
//         })
//     })
//     .catch(err=>{
//         console.log(err)
//         res.json({
//             err,
//             code:500,
//             msg:"服务器异常",
//             type:0,
//         })
//     })
// })


// // 留言板 添加  
// router.post('/addliuyanone',(req,res)=>{
//     var body = req.body;
//     LiuYanModel.insertMany(body)
//     .then(result=>{
//         res.json({
//             result,
//             msg:'操作成功',
//             code:200
//         })
//     })
//     .catch(err=>{
//         console.log(err)
//         res.json({
//             err,
//             code:500,
//             msg:"服务器异常",
//             type:0,
//         })
//     })
// })


// // 留言板 删除  _id 
// router.post('/removeliuyanone',(req,res)=>{
//     var body = req.body;
//     LiuYanModel.remove({
//         _id:body._id
//     })
//     .then(result=>{
//         res.json({
//             result,
//             msg:'删除成功',
//             code:200
//         })
//     })
//     .catch(err=>{
//         console.log(err)
//         res.json({
//             err,
//             code:500,
//             msg:"服务器异常",
//             type:0,
//         })
//     })
// })

// // 留言板修改  _id 
// router.post('/updateliuyanone',(req,res)=>{
//     var body = req.body;
//     LiuYanModel.updateMany({
//         _id:body._id
//     },{
//         $set:{
//             title:body.title,
//             content:body.content,
//         }
//     })
//     .then(result=>{
//         res.json({
//             result,
//             msg:'修改成功',
//             code:200
//         })
//     })
//     .catch(err=>{
//         console.log(err)
//         res.json({
//             err,
//             code:500,
//             msg:"服务器异常",
//             type:0,
//         })
//     })
// })


router.get("/gettoken", (req, res) => {
    res.json({
        code: 200,
        msg: "获取token 成功",
        result: null
    })
})

// 登陆
router.post("/login", (req, res) => {
    var body = req.body;
    delete body['remember']
    AdminUsersModel.findOne(
        body
    )
        .then(result => {
            console.log(result);
            if (result) {
                body.time = new Date()
                var token = createToken(body)
                res.json({
                    result,
                    code: 200,
                    msg: "登陆成功",
                    type: 1,
                    token
                })
            } else {
                res.json({
                    code: 402,
                    msg: "登录失败,手机号码或者密码不正确",
                    type: 0,
                })
            }
        })
        .catch(err => {
            res.json({
                err,
                code: 500,
                msg: "服务器异常",
                type: 0,
            })
        })
})

// 发送验证码 
router.get("/sendcaptcha", (req, res) => {
    var { phone } = req.query;
    AdminUsersModel.findOne({
        phone: phone
    })
        .then(data => {
            if (data) {
                // 发送验证码
                axios.get("http://47.104.209.44:3333/captcha/sent", {
                    params: {
                        phone: phone
                    }
                })
                    .then(result => {
                        res.json({
                            code: 200,
                            msg: "验证码发送成功",
                            type: 1,
                            ...result.data
                        })
                    })
            } else {
                res.json({
                    code: 402,
                    msg: "手机号码暂未注册,请联系管理员",
                    type: 0,
                })
            }
        })
        .catch(err => {
            console.log(err)
            res.json({
                err,
                code: 500,
                msg: "服务器异常",
                type: 0,
            })
        })
})

// 校验验证码
router.get("/verifycaptcha", (req, res) => {
    var { phone, captcha } = req.query;
    AdminUsersModel.findOne({
        phone: phone
    })
        .then(data => {
            if (data) {
                // 校验验证码
                axios.get("http://47.104.209.44:3333/captcha/verify", {
                    params: {
                        phone: phone,
                        captcha
                    }
                })
                    .then(result => {
                        var token = createToken({ phone, time: new Date() })
                        res.json({
                            code: 200,
                            msg: "验证码验证成功",
                            type: 1,
                            ...result.data,
                            token
                        })
                    })
            } else {
                res.json({
                    code: 402,
                    msg: "手机号码暂未注册,请联系管理员",
                    type: 0,
                })
            }
        })
        .catch(err => {
            console.log(err)
            res.json({
                err,
                code: 500,
                msg: "服务器异常",
                type: 0,
            })
        })
})




// 获取用户信息
router.get("/getuserinfo", (req, res) => {
    checkToken(req, res, ({
        phone
    }) => {
        AdminUsersModel.findOne({
            phone
        })
            .then(result => {
                res.json({
                    code: 200,
                    msg: "获取个人信息成功",
                    type: 1,
                    result
                })
            })
            .catch(err => {
                console.log(err)
                res.json({
                    err,
                    code: 500,
                    msg: "服务器异常",
                    type: 0,
                })
            })
    })
})


// 获取用户列表
router.get("/getuserlist", (req, res) => {
    checkToken(req, res, ({
        phone
    }) => {
        AdminUsersModel.find({

        })
            .sort({
                _id: -1
            })
            .then(result => {
                res.json({
                    code: 200,
                    msg: "获取用户列表成功",
                    type: 1,
                    result
                })
            })
            .catch(err => {
                console.log(err)
                res.json({
                    err,
                    code: 500,
                    msg: "服务器异常",
                    type: 0,
                })
            })
    })
})




module.exports = router